package LiKou;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Problem670 {
    public static void main(String[] args) {
        int num=2736;
        System.out.println(maximumSwap2(num));
    }
    public static int maximumSwap(int num) {
        int temp=num;
        int result=0;
        int maxIndex=0;
        List<Integer> list=new ArrayList<>();
        while(temp!=0){
            list.add(temp%10);
            temp/=10;
        }
        boolean flag=true;
        for(int i=0;i<list.size()-1;i++){
            if(list.get(i)<list.get(i+1)){
                flag=false;
            }
            if(list.get(i)>list.get(maxIndex)){
                maxIndex=i;
            }
        }
        if(flag){
            return num;
        }
        if(maxIndex==0){

        }else{
            int temp1=list.get(maxIndex);
            list.set(maxIndex,list.get(0));
            list.set(0,temp1);
        }
        return result;
    }
    public static int maximumSwap2(int num) {
        int temp=num;
        int result=0;
        int maxLen=0;
        int[] arr=new int[9];
        while(temp!=0){
            arr[maxLen]=temp%10;
            temp/=10;
            maxLen++;
        }
        System.out.println(Arrays.toString(arr));
        int[] copy=Arrays.copyOf(arr,9);
        System.out.println(Arrays.toString(copy));
        Arrays.sort(copy);
        for(int i=0;i<maxLen;i++){
            if(arr[i]!=copy[i]){
                for(int j=maxLen-1;j>=i;j--){
                    if(arr[j]==copy[i]){
                        int tempnum=arr[i];
                        arr[i]=arr[j];
                        arr[j]=tempnum;
                    }
                }
            }
        }
        int fix=1;
        for(int i=0;i<maxLen;i++){
            result+=arr[i]*fix;
            fix=fix*10;
        }
        return result;
    }
}
